package com.sxj.corejava.code08_常用类.string类;

import java.util.Arrays;

/**
 * @author 石小俊
 * 2024年07月19日 15:48
 */
public class Test04_与其他类型的转换 {

    public static void main(String[] args) {
        String s = "Hello World";

        System.out.println("********************将字符串转换成char数组********************");
        char[] cs = s.toCharArray();
        System.out.println(Arrays.toString(cs));

        System.out.println("********************将char数组转换成字符串********************");
        String s2 = new String(cs);
        System.out.println(s2);

        System.out.println("********************将字符串转换成byte数组********************");
        byte[] bs = s.getBytes();
        // 由于字符串中存在很多英文字母
        // 会通过Ascii码将字母转换成对应的数值
        System.out.println(Arrays.toString(bs));

        System.out.println("********************将byte数组转换成字符串********************");
        String s3 = new String(bs);
        System.out.println(s3);

        System.out.println("********************将字符串转换成int类型********************");
        // 对于字符串转换成int,此时的字符串必须是数字
        String s4 = "123";
        int i = Integer.parseInt(s4);
        System.out.println(i);
        // 如果字符串中包含非数字(包括小数点),会抛出异常NumberFormatException
        // 该异常表示数字格式异常
        String s5 = "123.45";
        //i = Integer.parseInt(s5);
        //System.out.println(i);

        System.out.println("********************将int转换成字符串********************");
        int i2 = 213;
        // 方式一:字符串与任意类型拼接后返回的都是字符串
        String s6 = i2 + "";
        System.out.println(s6);
        // 方式二:通过字符串提供的静态方法valueOf进行转换
        String s7 = String.valueOf(i2);
        System.out.println(s7);

        System.out.println("********************将字符串转换成double类型********************");
        // 将字符串转换成double类型,与int类型相类似
        // 此时的字符串必须是数字,但是可以包含一个小数点
        String s8 = "123.45";
        double d1 = Double.parseDouble(s8);
        System.out.println(d1);

        // 当出现两个小数点时,已经不符合小数格式了,因此抛出了NumberFormatException异常
        String s9 = "123.45.67";
        //double d2 = Double.parseDouble(s9);
        //System.out.println(d2);

        System.out.println("********************将double转换成字符串********************");
        double d3 = 123.45;
        String s10 = d3 + "";
        String s11 = String.valueOf(d3);
        System.out.println(s10);
        System.out.println(s11);
    }

}
